package com.lagou.service;

import com.lagou.entity.UserCourseOrder;

import java.util.List;

public interface OrderService {

    /**
     * 生成订单
     *
     * @param orderNo          订单编号
     * @param userId           用户编号
     * @param courseId         课程编号
     * @param activityCourseId 活动课程编号
     * @param sourceType       订单来源类型
     */
    void saveOrder(String orderNo, String userId, String courseId, String activityCourseId, String sourceType);

    /**
     * 修改订单
     *
     * @param orderNo 订单编号
     * @param status  订单状态 0已创建 10未支付 20已支付 30已取消 40已过期
     * @return 受影响的行数
     */
    Integer updateOrder(String orderNo, int status);

    /**
     * 删除订单
     *
     * @param orderNo 订单编号
     * @return 受影响行数
     */
    Integer deleteOrder(String orderNo);

    /**
     * 查询用户所有订单
     *
     * @param userId 用户编号
     * @return 订单对象列表
     */
    List<UserCourseOrder> getOrdersByUserId(String userId);

}
